using System;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("CollectionDeckTileActor")]
	public class CollectionDeckTileActor : Actor
	{
		[Attribute38("CollectionDeckTileActor.DeckTileFrameColorSet")]
		public class DeckTileFrameColorSet : MonoClass
		{
			public Color m_desatColor => method_2<Color>("m_desatColor");

			public float m_desatContrast => method_2<float>("m_desatContrast");

			public float m_desatAmount => method_2<float>("m_desatAmount");

			public Color m_costTextColor => method_2<Color>("m_costTextColor");

			public Color m_countTextColor => method_2<Color>("m_countTextColor");

			public Color m_nameTextColor => method_2<Color>("m_nameTextColor");

			public Color m_sliderColor => method_2<Color>("m_sliderColor");

			public Color m_outlineColor => method_2<Color>("m_outlineColor");

			public Material m_highlightMaterial => method_3<Material>("m_highlightMaterial");

			public Material m_highlightGlowMaterial => method_3<Material>("m_highlightGlowMaterial");

			public DeckTileFrameColorSet(IntPtr address, string className)
				: base(address, className)
			{
			}

			public DeckTileFrameColorSet(IntPtr address)
				: this(address, "DeckTileFrameColorSet")
			{
			}
		}

		public enum GhostedState
		{
			NONE,
			BLUE,
			RED
		}

		public Material m_standardFrameMaterial => method_3<Material>("m_standardFrameMaterial");

		public Material m_halfPremiumFrameMaterial => method_3<Material>("m_halfPremiumFrameMaterial");

		public Material m_premiumFrameMaterial => method_3<Material>("m_premiumFrameMaterial");

		public Material m_standardFrameInteriorMaterial => method_3<Material>("m_standardFrameInteriorMaterial");

		public GameObject m_frame => method_3<GameObject>("m_frame");

		public GameObject m_frameInterior => method_3<GameObject>("m_frameInterior");

		public GameObject m_uniqueStar => method_3<GameObject>("m_uniqueStar");

		public GameObject m_highlight => method_3<GameObject>("m_highlight");

		public GameObject m_highlightGlow => method_3<GameObject>("m_highlightGlow");

		public UberText m_countText => method_3<UberText>("m_countText");

		public Material m_ghostedFrameMaterial => method_3<Material>("m_ghostedFrameMaterial");

		public Material m_redFrameMaterial => method_3<Material>("m_redFrameMaterial");

		public MeshRenderer m_manaGem => method_3<MeshRenderer>("m_manaGem");

		public MeshRenderer m_slider => method_3<MeshRenderer>("m_slider");

		public Material m_manaGemNormalMaterial => method_3<Material>("m_manaGemNormalMaterial");

		public Material m_manaGemGhostedMaterial => method_3<Material>("m_manaGemGhostedMaterial");

		public Material m_manaGemRedGhostedMaterial => method_3<Material>("m_manaGemRedGhostedMaterial");

		public Material m_redFrameInteriorMaterial => method_3<Material>("m_redFrameInteriorMaterial");

		public DeckTileFrameColorSet m_normalColorSet => method_3<DeckTileFrameColorSet>("m_normalColorSet");

		public DeckTileFrameColorSet m_ghostedColorSet => method_3<DeckTileFrameColorSet>("m_ghostedColorSet");

		public DeckTileFrameColorSet m_redColorSet => method_3<DeckTileFrameColorSet>("m_redColorSet");

		public static float SLIDER_ANIM_TIME => MonoClass.smethod_6<float>(TritonHs.MainAssemblyPath, "", "CollectionDeckTileActor", "SLIDER_ANIM_TIME");

		public UberText m_countTextMesh => method_3<UberText>("m_countTextMesh");

		public bool m_sliderIsOpen => method_2<bool>("m_sliderIsOpen");

		public Vector3 m_originalSliderLocalPos => method_2<Vector3>("m_originalSliderLocalPos");

		public Vector3 m_openSliderLocalPos => method_2<Vector3>("m_openSliderLocalPos");

		public GhostedState m_ghosted => method_2<GhostedState>("m_ghosted");

		public CollectionDeckSlot m_slot => method_3<CollectionDeckSlot>("m_slot");

		public CollectionDeckTileActor(IntPtr address, string className)
			: base(address, className)
		{
		}

		public CollectionDeckTileActor(IntPtr address)
			: this(address, "CollectionDeckTileActor")
		{
		}

		public new void Awake()
		{
			method_8("Awake");
		}

		public void UpdateDeckCardProperties(bool cardIsUnique, int numCards, bool useSliderAnimations)
		{
			method_8("UpdateDeckCardProperties", cardIsUnique, numCards, useSliderAnimations);
		}

		public void UpdateMaterial(Material material)
		{
			method_8("UpdateMaterial", material);
		}

		public void SetGhosted(GhostedState state)
		{
			method_8("SetGhosted", state);
		}

		public new void SetPremium(TAG_PREMIUM premium)
		{
			method_8("SetPremium", premium);
		}

		public CollectionDeckSlot GetSlot()
		{
			return method_14<CollectionDeckSlot>("GetSlot", Array.Empty<object>());
		}

		public void SetSlot(CollectionDeckSlot slot)
		{
			method_8("SetSlot", slot);
		}

		public void UpdateGhostTileEffect()
		{
			method_8("UpdateGhostTileEffect");
		}

		public new Material GetPortraitMaterial()
		{
			return method_14<Material>("GetPortraitMaterial", Array.Empty<object>());
		}

		public void SetDesaturationAmount(Material material, DeckTileFrameColorSet colorSet)
		{
			method_8("SetDesaturationAmount", material, colorSet);
		}

		public void UpdateFrameMaterial()
		{
			method_8("UpdateFrameMaterial");
		}

		public void AssignSlider()
		{
			method_8("AssignSlider");
		}

		public void AssignCardCount()
		{
			method_8("AssignCardCount");
		}

		public void OpenSlider(bool useSliderAnimations)
		{
			method_8("OpenSlider", useSliderAnimations);
		}

		public void CloseSlider(bool useSliderAnimations)
		{
			method_8("CloseSlider", useSliderAnimations);
		}
	}
}
